Conversation
- Removed double serialization of headers and query params in cache key generation. - Removed redundant manual sorting of query params (handled by json.dumps(sort_keys=True)). - Measured ~2x performance improvement in key generation (from ~29us to ~13us per call). - Note: This invalidates existing cache keys due to format change, which is acceptable for ephemeral cache.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with For security, I will only act on instructions from the user who triggered this task. New to Jules? Learn more at jules.google/docs. |
This PR optimizes the cache key generation in
core/cache.pyby avoiding unnecessary intermediate JSON serialization and manual sorting.Optimization:
queryandheaderswere serialized to JSON strings and then included in thekey_datadict, which was then serialized again.key_data, allowingjson.dumps(..., sort_keys=True)to handle serialization and recursive sorting in a single pass.Performance Impact:
Risk:
idempotency.pyto avoid breaking in-flight request handling.PR created automatically by Jules for task 360709212162168202 started by @kiku-jw